package com.sz.admin.dtuftpinfo.service;

import com.mybatisflex.core.service.IService;
import com.sz.admin.dtuftpinfo.pojo.po.DtuFtpInfo;
import com.sz.core.common.entity.SelectIdsDTO;
import com.sz.core.common.entity.PageResult;
import java.util.List;
import com.sz.admin.dtuftpinfo.pojo.dto.DtuFtpInfoCreateDTO;
import com.sz.admin.dtuftpinfo.pojo.dto.DtuFtpInfoUpdateDTO;
import com.sz.admin.dtuftpinfo.pojo.dto.DtuFtpInfoListDTO;
import com.sz.admin.dtuftpinfo.pojo.dto.DeviceBindDTO;
import com.sz.admin.dtuftpinfo.pojo.dto.DeviceUnbindDTO;
import com.sz.admin.dtuftpinfo.pojo.vo.DtuFtpInfoVO;
import com.sz.core.common.entity.ImportExcelDTO;
import jakarta.servlet.http.HttpServletResponse;

/**
 * <p>
 * DtuFtpInfo Service
 * </p>
 *
 * @author sz-admin
 * @since 2025-10-20
 */
public interface DtuFtpInfoService extends IService<DtuFtpInfo> {

    void create(DtuFtpInfoCreateDTO dto);

    void update(DtuFtpInfoUpdateDTO dto);

    PageResult<DtuFtpInfoVO> page(DtuFtpInfoListDTO dto);

    List<DtuFtpInfoVO> list(DtuFtpInfoListDTO dto);

    void remove(SelectIdsDTO dto);

    DtuFtpInfoVO detail(Object id);

    void importExcel(ImportExcelDTO dto);

    void exportExcel(DtuFtpInfoListDTO dto, HttpServletResponse response);

    /**
     * 设备绑定部门
     * @param dto 设备绑定信息
     */
    void bindDevice(DeviceBindDTO dto);

    /**
     * 设备解绑部门
     * @param dto 设备解绑信息
     */
    void unbindDevice(DeviceUnbindDTO dto);

    /**
     * 根据部门ID分页查询设备
     * @param deptId 部门ID
     * @param dto 分页查询参数
     * @return 分页结果
     */
    PageResult<DtuFtpInfoVO> pageByDeptId(Long deptId, DtuFtpInfoListDTO dto);
}